# 函数多返回值
def test():
    return 1, 2


def test1():
    return 1, "张", True


x, y = test()
print(x)
print(y)

a, b, c = test1()
print(a)
print(b)
print(c)

'''
参数传递
'''


def test2(name, age, sex):
    print(name, age, sex)


'''参数传递的三种方式'''

# 位置传参
test2("张三", 20, "男")

# 关键字传参
test2(name="张三", age=20, sex="男")
test2(age=22, name="李四", sex="男")
test2("张三", age=20, sex="男")


# 缺省参数（默认值,设置默认值，必须在最后）
def test2(name, age, sex="男"):
    print(name, age, sex)


test2("王五", 22)

'''
不定长参数
参数传递之后会合并成一个元组
'''


def test3(*args):
    print(args)


test3("张三")
test3("小明", 20)
test3("小红", 21, "男")

'''
关键字不定长传递
'''


# 传入参数必须是 key，value 形式的
def test4(**kwargs):
    print(kwargs)


test4(name="小王", age=18)


# 匿名函数

def test_function(compute):
    result = compute(1, 2)
    print(f"计算结果", result)


def compute(x, y):
    return x + y


test_function(compute)

# lambda 匿名函数
# 没有名称，只能使用一次
test_function(lambda x, y: x + y)
